import pandas as pd

pd.set_option('display.unicode.ambiguous_as_wide', True)
pd.set_option('display.unicode.east_asian_width', True)

df = pd.read_excel('././超市营业额2.xlsx')

print('下标在 [5, 10] 区间的行'.ljust(20, '='), df[5:11], sep='\n')

# iloc 使用整体做索引
print('索引为5的行'.ljust(20, '='), df.iloc[5], sep='\n')
print('下标为[3, 5, 10]的行'.ljust(20, '='), df.iloc[[3, 5, 10], :], sep='\n')
print(df.iloc[[3, 5, 10], [0, 1, 4]])

print('查看指定列的前5行数据'.ljust(20, '='))
print(df[['姓名', '日期', '交易额']][:5])

# 跟上面的两行代码效果一样
print('只查看前10列行指定的列'.ljust(20, '='))
print(df[:10][['姓名', '日期', '柜台']])

# loc 和 at 使用标签做索引
print('下标为[3, 5, 10]的行的指定列'.ljust(20, '='))
print(df.loc[[3, 5, 10], ['姓名', '交易额']])
print('行下标为3, 姓名列的值：', df.at[3, '姓名'], sep='\n')
print('交易额高于1700元的数据：\n', df[df['交易额'] > 1700])
print('交易总额：', df['交易额'].sum(), sep='\n')
print('下午班的交易总额：', df[(df['时段'] == '14:00~21:00')]['交易额'].sum(), sep='\n')
print('张三上午班的交易情况：\n', df[(df.姓名 == '张三') & (df.时段 == '14:00~21:00')][1:10])
print('日用品柜台销售总额：', df[df['柜台'] == '日用品']['交易额'].sum())
print('张三和李四2人销售总额：', df[df['姓名'].isin(['张三', '李四'])]['交易额'].sum())
print('交易额在指定范围内的记录：\n', df[df['交易额'].between(800, 850)])
